Comparing Curried and Uncurried Rewriting
نویسندگان
چکیده
Currying is a transformation of term rewrite systems which may contain symbols of arbitrary arity into systems which contain only nullary symbols, together with a single binary symbol called application. We show that for all term rewrite systems (whether orthogonal or not) the following properties are preserved by this transformation: strong normalization, weak normalization, weak Church-Rosser, completeness, semi-completeness, and the non-convertibility of distinct normal forms. Under the condition of leftlinearity we show preservation of the properties NF (if a term is reducible to a normal form, then its reducts are all reducible to the same normal form) and UN (a term is reducible to at most one normal form). We exhibit counterexamples to the preservation of NF and UN for non-left linear systems. The results extend to partial currying (where some subset of the symbols are curried), and imply some modularity properties for unions of applicative systems.
منابع مشابه
LETOS - a lightweight execution tool for operational semantics
syntax Curried ADT Uncurried ADT Uncurried ADT + list arity Parsing no no yes (Metal)
متن کاملGraphical and Incremental Type Inference: A Graph Transformation Approach
We present a graph grammar based type inference system for a totally graphic development language. NiMo (Nets in Motion) can be seen as a graphic equivalent to Haskell that acts as an on-line tracer and debugger. Programs are process networks that evolve giving total visibility of the execution state, and can be interactively completed, changed or stored at any step. In such a context, type inf...
متن کاملSyntactic Function-Based Chinese Lexical Categories and Category Grammar Parsing
By merging syntactic categories of word classes, lexical categories were obtained. By demonstrating combination and type raising rules respectively from curried and uncurried perspectives, a category combination algorithm was presented, in which application, composition and type raising rules were sequentially examined, and the first available rule was selected. A Chinese CCG parser was develop...
متن کاملA verified framework for higher-order uncurrying optimizations
Function uncurrying is an important optimization for the efficient execution of functional programming languages. This optimization replaces curried functions by uncurried, multiple-argument functions, while preserving the ability to evaluate partial applications. First-order uncurrying (where curried functions are optimized only in the static scopes of their definitions) is well understood and...
متن کاملConfluence of Curried Term-Rewriting Systems
Reduction Systems Definition An Abstract Reduction System short ARS consists of a set A and a sequence i of binary relations on A labelled by some set I We often drop the label if I is a singleton We write A j P if the ARS A A i i I has the property P Further we write A j P Q i A j P and A j Q An ARS A A has the diamond property A j i It has the Church Rosser property is con uent A j CR i A j G...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- J. Symb. Comput.
دوره 21 شماره
صفحات -
تاریخ انتشار 1996